In a conventional disk drive, data is written to and read from a rotating magnetic medium (disk) by a write head and a read head mounted on a head slider. The disk drive writes and reads data in response to commands from a host, such as a personal computer.
In a disk drive, data is written to the disk on concentric tracks, in sectors defined within the tracks. When the disk drive receives a request for data from its host, the disk drive moves the read head to the first track having requested data, reads the relevant sector or sectors from the disk, and repeats that process until all of the requested data has been retrieved.
As the data is read, it is temporarily stored in an internal memory in the disk drive, while it is checked for errors. In the absence of errors, the data is released for access by the host. If errors are detected in a sector, though, an error correction engine attempts to correct them, using one or more algorithms. If the errors in the bad sector are not corrected, the data is typically re-read from the disk, which requires an additional rotation of the disk over the bad sector. This is inefficient, and increases the time required to correct the errors and release the data for host access. Thus, there is a need for methods and apparatus for correcting such data errors which are more efficient, and reduce or eliminate the need for re-reading data from the disk during the error correction process.
Accordingly, one object of this invention is to provide new and improved methods and apparatus for correcting errors in data read from a disk drive.
Another object is to provide new and improved error correction methods and apparatus that reduce the time required for error correction.